data load

library(dplyr)
library(data.table)
library(ggplot2)
library(ggmap)
library(RColorBrewer)
library(leaflet)
library(scales)
library(plotly)

powerplants=read.csv('global_power_plant_database.csv')

#powerplantsWithYearData = powerplants %>% group_by(country_long) %>% summarise(proportionWithData = 1 - mean(is.na(commissioning_year))) %>% filter(proportionWithData > .8)

powerplants = powerplants %>% filter(country_long %in% powerplantsWithYearData$country_long)

powerplants[is.na(powerplants)] = 0
powerplantsUSA = powerplants %>% filter(country_long == "United States of America")

Data prep

powerplantsUSAFuel = powerplantsUSA %>% group_by(primary_fuel) 

powerplantsUSAFuelYear = powerplantsUSAFuel %>% summarise(energy2013 = 0.5* (sum(generation_gwh_2013) + sum(estimated_generation_gwh_2013)),
          energy2014 = 0.5* (sum(generation_gwh_2014) + sum(estimated_generation_gwh_2014)),
          energy2015 = 0.5* (sum(generation_gwh_2015) + sum(estimated_generation_gwh_2015)),
          energy2016 = 0.5* (sum(generation_gwh_2016) + sum(estimated_generation_gwh_2016)),
          energy2017 = 0.5* (sum(generation_gwh_2017) + sum(estimated_generation_gwh_2017)),
          )

powerplantsUSAFuelYearDF = as.data.frame(powerplantsUSAFuelYear)
powerplantsUSAFuelYearLabeled = powerplantsUSAFuelYearDF[,-1]
row.names(powerplantsUSAFuelYearLabeled) = powerplantsUSAFuelYearDF[,1]
transposePowerplantsUSAFuelYear = transpose(powerplantsUSAFuelYearLabeled)
colnames(transposePowerplantsUSAFuelYear) = powerplantsUSAFuelYearDF[,1]
transposePowerplantsUSAFuelYear$Year = c(2013,2014,2015,2016,2017)


totalEnergy = powerplantsUSAFuelYear %>% mutate(total = energy2013+ energy2014 +energy2015 + energy2016 + energy2017)

map

powertype = "Wind"
leaflet(powerplants %>% filter(primary_fuel == powertype)) %>% addTiles() %>% addMarkers(~longitude,~latitude,popup= ~primary_fuel,label= ~name)

Total energy bar chart

energy produced

ggplotly(lineplot)
Warning in is.na(ticktext) :
  is.na() applied to non-(list or vector) of type 'expression'

number of plants by type

LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQpkYXRhIGxvYWQKYGBge3J9CmxpYnJhcnkoZHBseXIpCmxpYnJhcnkoZGF0YS50YWJsZSkKbGlicmFyeShnZ3Bsb3QyKQpsaWJyYXJ5KGdnbWFwKQpsaWJyYXJ5KFJDb2xvckJyZXdlcikKbGlicmFyeShsZWFmbGV0KQpsaWJyYXJ5KHNjYWxlcykKbGlicmFyeShwbG90bHkpCgpwb3dlcnBsYW50cz1yZWFkLmNzdignZ2xvYmFsX3Bvd2VyX3BsYW50X2RhdGFiYXNlLmNzdicpCgojcG93ZXJwbGFudHNXaXRoWWVhckRhdGEgPSBwb3dlcnBsYW50cyAlPiUgZ3JvdXBfYnkoY291bnRyeV9sb25nKSAlPiUgc3VtbWFyaXNlKHByb3BvcnRpb25XaXRoRGF0YSA9IDEgLSBtZWFuKGlzLm5hKGNvbW1pc3Npb25pbmdfeWVhcikpKSAlPiUgZmlsdGVyKHByb3BvcnRpb25XaXRoRGF0YSA+IC44KQoKcG93ZXJwbGFudHMgPSBwb3dlcnBsYW50cyAlPiUgZmlsdGVyKGNvdW50cnlfbG9uZyAlaW4lIHBvd2VycGxhbnRzV2l0aFllYXJEYXRhJGNvdW50cnlfbG9uZykKCnBvd2VycGxhbnRzW2lzLm5hKHBvd2VycGxhbnRzKV0gPSAwCnBvd2VycGxhbnRzVVNBID0gcG93ZXJwbGFudHMgJT4lIGZpbHRlcihjb3VudHJ5X2xvbmcgPT0gIlVuaXRlZCBTdGF0ZXMgb2YgQW1lcmljYSIpCmBgYApEYXRhIHByZXAKYGBge3J9CnBvd2VycGxhbnRzVVNBRnVlbCA9IHBvd2VycGxhbnRzVVNBICU+JSBncm91cF9ieShwcmltYXJ5X2Z1ZWwpIAoKcG93ZXJwbGFudHNVU0FGdWVsWWVhciA9IHBvd2VycGxhbnRzVVNBRnVlbCAlPiUgc3VtbWFyaXNlKGVuZXJneTIwMTMgPSAwLjUqIChzdW0oZ2VuZXJhdGlvbl9nd2hfMjAxMykgKyBzdW0oZXN0aW1hdGVkX2dlbmVyYXRpb25fZ3doXzIwMTMpKSwKICAgICAgICAgIGVuZXJneTIwMTQgPSAwLjUqIChzdW0oZ2VuZXJhdGlvbl9nd2hfMjAxNCkgKyBzdW0oZXN0aW1hdGVkX2dlbmVyYXRpb25fZ3doXzIwMTQpKSwKICAgICAgICAgIGVuZXJneTIwMTUgPSAwLjUqIChzdW0oZ2VuZXJhdGlvbl9nd2hfMjAxNSkgKyBzdW0oZXN0aW1hdGVkX2dlbmVyYXRpb25fZ3doXzIwMTUpKSwKICAgICAgICAgIGVuZXJneTIwMTYgPSAwLjUqIChzdW0oZ2VuZXJhdGlvbl9nd2hfMjAxNikgKyBzdW0oZXN0aW1hdGVkX2dlbmVyYXRpb25fZ3doXzIwMTYpKSwKICAgICAgICAgIGVuZXJneTIwMTcgPSAwLjUqIChzdW0oZ2VuZXJhdGlvbl9nd2hfMjAxNykgKyBzdW0oZXN0aW1hdGVkX2dlbmVyYXRpb25fZ3doXzIwMTcpKSwKICAgICAgICAgICkKCnBvd2VycGxhbnRzVVNBRnVlbFllYXJERiA9IGFzLmRhdGEuZnJhbWUocG93ZXJwbGFudHNVU0FGdWVsWWVhcikKcG93ZXJwbGFudHNVU0FGdWVsWWVhckxhYmVsZWQgPSBwb3dlcnBsYW50c1VTQUZ1ZWxZZWFyREZbLC0xXQpyb3cubmFtZXMocG93ZXJwbGFudHNVU0FGdWVsWWVhckxhYmVsZWQpID0gcG93ZXJwbGFudHNVU0FGdWVsWWVhckRGWywxXQp0cmFuc3Bvc2VQb3dlcnBsYW50c1VTQUZ1ZWxZZWFyID0gdHJhbnNwb3NlKHBvd2VycGxhbnRzVVNBRnVlbFllYXJMYWJlbGVkKQpjb2xuYW1lcyh0cmFuc3Bvc2VQb3dlcnBsYW50c1VTQUZ1ZWxZZWFyKSA9IHBvd2VycGxhbnRzVVNBRnVlbFllYXJERlssMV0KdHJhbnNwb3NlUG93ZXJwbGFudHNVU0FGdWVsWWVhciRZZWFyID0gYygyMDEzLDIwMTQsMjAxNSwyMDE2LDIwMTcpCgoKdG90YWxFbmVyZ3kgPSBwb3dlcnBsYW50c1VTQUZ1ZWxZZWFyICU+JSBtdXRhdGUodG90YWwgPSBlbmVyZ3kyMDEzKyBlbmVyZ3kyMDE0ICtlbmVyZ3kyMDE1ICsgZW5lcmd5MjAxNiArIGVuZXJneTIwMTcpCgpgYGAKCm1hcApgYGB7cn0KcG93ZXJ0eXBlID0gIldpbmQiCmxlYWZsZXQocG93ZXJwbGFudHMgJT4lIGZpbHRlcihwcmltYXJ5X2Z1ZWwgPT0gcG93ZXJ0eXBlKSkgJT4lIGFkZFRpbGVzKCkgJT4lIGFkZE1hcmtlcnMofmxvbmdpdHVkZSx+bGF0aXR1ZGUscG9wdXA9IH5wcmltYXJ5X2Z1ZWwsbGFiZWw9IH5uYW1lKQpgYGAKClRvdGFsIGVuZXJneSBiYXIgY2hhcnQKYGBge3J9CnRvdGFsRW5lcmd5Q2hhcnQ9Z2dwbG90KHRvdGFsRW5lcmd5LGFlcyh4PXJlb3JkZXIocHJpbWFyeV9mdWVsLHRvdGFsKSx5PXRvdGFsLGZpbGw9cHJpbWFyeV9mdWVsKSkgKyBnZW9tX2JhcihzdGF0PSJpZGVudGl0eSIpICsgY29vcmRfZmxpcCgpICsgc2NhbGVfeV9jb250aW51b3VzKHRyYW5zPSAnbG9nMTAnLCBsYWJlbHMgPSB0cmFuc19mb3JtYXQoJ2xvZzEwJyxtYXRoX2Zvcm1hdCgxMF4ueCkpKSArIHRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlPTkwKSkgKyB5bGFiKCJFbmVyZ3kgQWNjdW11bGF0ZWQgTVdIIikgKyB4bGFiKCJQcmltYXJ5IEZ1ZWwiKQp0b3RhbEVuZXJneUNoYXJ0CmBgYAoKZW5lcmd5IHByb2R1Y2VkCmBgYHtyfQoKZGF0YV9sb25nID0gbWVsdCh0cmFuc3Bvc2VQb3dlcnBsYW50c1VTQUZ1ZWxZZWFyLCBpZD0iWWVhciIpCmNvbG5hbWVzKGRhdGFfbG9uZykgPSBjKCJZZWFyIiwicHJpbWFyeV9mdWVsIiwiZW5lcmd5IikKCmxpbmVwbG90ID0gZ2dwbG90KGRhdGFfbG9uZywgYWVzKHg9WWVhcix5PWVuZXJneSwgY29sb3I9IHByaW1hcnlfZnVlbCkpICsgeWxhYigiRW5lcmd5IFByb2R1Y2VkIE1XSCIpICsgeGxhYigiWWVhciIpICsgZ2VvbV9saW5lKCkgKyBzY2FsZV95X2NvbnRpbnVvdXModHJhbnM9ICdsb2cxMCcsIGxhYmVscyA9IHRyYW5zX2Zvcm1hdCgnbG9nMTAnLG1hdGhfZm9ybWF0KDEwXi54KSkpICtnZ3RpdGxlKCJFbmVyZ3kgUHJvZHVjZWQgb3ZlciB0aGUgWWVhcnMgcGVyIFR5cGUiKQoKZ2dwbG90bHkobGluZXBsb3QpCmBgYAoKbnVtYmVyIG9mIHBsYW50cyBieSB0eXBlCmBgYHtyfQpudW1iZXJPZlBsYW50cyA9IHBvd2VycGxhbnRzVVNBRnVlbCAlPiUgc3VtbWFyaXplKG51bWJlciA9IG4oKSkKZ2dwbG90KG51bWJlck9mUGxhbnRzLGFlcyh4PXJlb3JkZXIocHJpbWFyeV9mdWVsLG51bWJlciksIHk9bnVtYmVyLGZpbGw9cHJpbWFyeV9mdWVsKSkgKyBnZW9tX2JhcihzdGF0PSJpZGVudGl0eSIpICsgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X3RleHQoYW5nbGU9OTApKSArIGNvb3JkX2ZsaXAoKSArIHNjYWxlX3lfY29udGludW91cyh0cmFucz0gJ2xvZzEwJywgbGFiZWxzID0gdHJhbnNfZm9ybWF0KCdsb2cxMCcsbWF0aF9mb3JtYXQoMTBeLngpKSkgKyB4bGFiKCJQcmltYXJ5IEZ1ZWwiKSArIHlsYWIoIk51bWJlciBvZiBQbGFudHMiKSArZ2d0aXRsZSgiTnVtYmVyIG9mIFBsYW50cyBwZXIgVHlwZSIpCmBgYAoKYGBge3J9CgpgYGA=